library(tidyverse)
library(lubridate)
library(glue)
library(here)
library(ggtext)
library(patchwork)
library(kableExtra)
library(hrbrthemes)
library(tidytext)
library(wordcloud)
source(here("src/5-funcao-limpando-texto.R"))
set.seed(1014)
knitr::knit_hooks$set(inline = function(x) prettyNum(x, big.mark = ".", decimal.mark = ","))
options(
digits = 1,
scipen = 999,
OutDec = ",",
knitr.kable.NA = "",
radian.auto_match = FALSE
)
Sys.setenv(LANGUAGE = "pt-br")
Sys.setlocale("LC_TIME", "pt_BR")
#> [1] ""
# helper
`%notin%` <- function(x, y) !(x %in% y)
# aplica identidade visual da TB/AeP:
source(here("src/0-paleta-de-cores.R"), encoding = "utf-8")
theme_set(theme_minimal())
theme_update(
panel.grid.minor = element_blank(),
panel.background = element_rect(fill = "gray97", color = "transparent")
)
Análises de pedidos de acesso a informação via LAI considerando a decisão de acesso.
Atenção: Eu fiz os agrupamentos para visualizar os órgãos de maneira mais focada, mas os critérios apenas intuitivos e baseados nos próprios nomes dos órgãos.
Atenção: a análise das núvens de palavras contemplam somente o período de 2015 até 2021, pois antes disso a base de dados não é disponibilizada pela CGU
pedidos_painel <- "dados/load/rds/base-cgu.rds" %>%
here() %>%
readRDS() %>%
pluck("pedidos") %>%
janitor::clean_names() %>%
mutate(
ts_registro = data_registro,
ts_resposta = data_resposta,
data_registro = dmy(data_registro) %>% floor_date(unit = "month"),
data_resposta = dmy(data_resposta) %>% floor_date(unit = "month")) %>%
rename(orgao = orgao_destinatario) %>%
filter(!is.na(decisao),
!is.na(data_resposta),
data_registro < ymd("2021-10-01"),
esfera == "Federal")
pedidos_clean <- "dados/load/rds/pedidos-clean.rds" %>%
here() %>%
readRDS()
orgaos_count_decisao <- pedidos_painel %>%
select(id_pedido, data_registro, decisao, orgao) %>%
add_count(data_registro, name = "n_mes") %>%
add_count(data_registro, orgao, name = "n_mes_orgao") %>%
add_count(data_registro, decisao, name = "n_mes_decisao") %>%
add_count(data_registro, decisao, orgao, name = "n_mes_decisao_orgao") %>%
select(id_pedido:n_mes, n_mes_decisao, n_mes_orgao, n_mes_decisao_orgao)
wafflechart_acesso_negado <- function(df, x,
titulo = "Maiores taxas de acessos negados registrada em um ano, por órgão") {
df %>%
filter(str_detect(orgao, x), decisao == "Acesso Negado") %>%
mutate(
taxa_interna = n_mes_decisao_orgao / n_mes_orgao,
taxa_global = n_mes_decisao_orgao / n_mes_decisao
) %>%
group_by(orgao) %>%
ungroup() %>%
group_by(ano = year(data_registro),
orgao) %>%
summarise(
`Taxa interna máxima registrada em um ano` = max(taxa_interna, na.rm = T),
`Taxa global máxima registrada em um ano` = max(taxa_global, na.rm = T),
.groups = "drop"
) %>%
pivot_longer(-c(ano, orgao), names_to = "categoria", values_to = "valor") %>%
complete(ano, orgao, categoria) %>%
filter(categoria == "Taxa interna máxima registrada em um ano") %>%
ggplot(aes(
x = factor(ano),
y = reorder(orgao, valor, na.rm = T),
fill = valor
)) +
geom_tile(color = "gray80") +
geom_text(
data = . %>%
filter(valor >= .15 | (valor >= .1 & str_detect(orgao, "^MEC "))),
aes(label = scales::percent(valor, accuracy = 0.1, decimal.mark = ",")),
size = 3) +
scale_x_discrete(position = "top") +
scale_fill_gradientn(
colors = c("white", cores_aep[["laranja"]], cores_aep[["rosa"]]),
na.value = "gray90",
labels = scales::percent_format()
) +
theme(
panel.grid = element_blank(),
legend.position = "top",
legend.direction = "horizontal",
legend.justification = "left"
) +
labs(
title = titulo,
subtitle = glue(
"Valor máximo registrado no ano de referência (% ao total de pedidos recebidos)"
),
x = NULL,
y = NULL,
fill = "%"
)
}
militares <- "^(CEX|CMAR|COMAER)"
ministerio <- "Ministério|^(CGU|CC-PR|SEGOV|SGPR|AGU|GSI|VPR|PR )"
empresa_publica <- "Ltda$|S\\.A\\.?$|Empresa|Companhia"
educacao <- "Universidade|Escola|Colégio|Instituto Federal de Educação|^CEFET"
saude <- "EBSERH|Hospital|Maternidade"
bancos <- "^(BB|CEF|CMB)\\s|Banco"
cultura <- c(
"ANCINE",
"FBN",
"FCP",
"FUNARTE",
"FCRB",
"IPHAN",
"FUNDAJ"
) %>% paste(collapse = "|")
cultura <- glue("^({cultura})\\s|Museu")
meio_ambiente <- c(
"MMA",
"FUNAI",
"ICMBio",
"IBAMA",
"INCRA",
"FCP",
"INPE-MCT",
"INPA"
) %>% paste(collapse = "|")
meio_ambiente <- glue("^({meio_ambiente})\\s")
ciencia <- c(
"AEB",
"CAPES",
"CNPQ",
"FINEP",
"FNDE",
"CBPF",
"JBRJ",
"CETEM",
"CETENE",
"CNEN",
"INT",
"LNCC-MCT",
"ON-MCT",
"LNA",
"INPI",
"ITI",
"INPE-MCT",
"IBICT",
"CTI",
"IPEA",
"FIOCRUZ",
"IBC",
"IBGE",
"INEP",
"INES",
"INSA",
"FUNDACENTRO",
"FUNASA"
) %>% paste(collapse = "|")
ciencia <- glue("^({ciencia})\\s")
agencias_reguladoras <- c(
"INMETRO",
"ANA(C|TEL)?",
"ANEEL",
"ANTAQ",
"ANTT",
"ANP",
"ANM",
"ANPD",
"ANS",
"ANVISA",
"CADE",
"COAF",
"CVM",
"SERPRO"
) %>% paste(collapse = "|")
agencias_reguladoras <- glue("^({agencias_reguladoras})\\s")
pedidos_painel %>% distinct(orgao) %>%
arrange(orgao) %>%
filter(
!str_detect(orgao, educacao),
!str_detect(orgao, saude),
!str_detect(orgao, militares),
!str_detect(orgao, ministerio),
!str_detect(orgao, empresa_publica),
!str_detect(orgao, bancos),
!str_detect(orgao, cultura),
!str_detect(orgao, meio_ambiente),
!str_detect(orgao, ciencia),
!str_detect(orgao, agencias_reguladoras)
) %>% print(n = Inf)
#> # A tibble: 18 x 1
#> orgao
#> <chr>
#> 1 AN – Arquivo Nacional
#> 2 DEPEN – Departamento Penitenciário Nacional
#> 3 DNIT – Departamento Nacional de Infraestrutura de Transportes
#> 4 DNOCS – Departamento Nacional de Obras Contra as Secas
#> 5 DPF – Departamento de Polícia Federal
#> 6 DPRF – Departamento de Polícia Rodoviária Federal
#> 7 DPU – Defensoria Pública da União
#> 8 FUNAG – Fundação Alexandre de Gusmão
#> 9 FUNPRESP - Fundação de Previdência Complementar do Servidor Público Federal~
#> 10 IMBEL – Indústria de Material Bélico do Brasil
#> 11 INSS – Instituto Nacional do Seguro Social
#> 12 Órgão para Teste - pedidos endereçados a esse órgão não serão respondidos/r~
#> 13 PREVIC – Superintendência Nacional de Previdência Complementar
#> 14 SUDAM – Superintendência do Desenvolvimento da Amazônia
#> 15 SUDECO – Superintendência de Desenvolvimento do Centro-Oeste
#> 16 SUDENE – Superintendência do Desenvolvimento do Nordeste
#> 17 SUFRAMA – Superintendência da Zona Franca de Manaus
#> 18 SUSEP – Superintendência de Seguros Privados
orgaos_count_decisao %>%
mutate(orgao = str_wrap(orgao, 40)) %>%
wafflechart_acesso_negado(ministerio)
orgaos_count_decisao %>%
filter(orgao == "PR – Presidência da República") %>%
mutate(
taxa_interna = n_mes_decisao_orgao / n_mes_orgao,
taxa_global = n_mes_decisao_orgao / n_mes_decisao
) %>%
group_by(orgao, decisao) %>%
summarise(
n_ano = sum(n_mes_decisao_orgao),
tx_interna_media = mean(taxa_interna, na.rm = T),
tx_global_media = mean(taxa_global, na.rm = T),
.groups = "drop"
)
#> # A tibble: 6 x 5
#> orgao decisao n_ano tx_interna_media tx_global_media
#> <chr> <chr> <int> <dbl> <dbl>
#> 1 PR – Presidên~ Acesso Concedido 6777 0.797 0.00814
#> 2 PR – Presidên~ Acesso Negado 226 0.229 0.0151
#> 3 PR – Presidên~ Acesso Parcialmente Con~ 2 0.583 0.00971
#> 4 PR – Presidên~ Informação Inexistente 64 0.238 0.0156
#> 5 PR – Presidên~ Órgão não tem competênc~ 4 0.182 0.00385
#> 6 PR – Presidên~ Pergunta Duplicada/Repe~ 2 0.15 0.00643
orgao <- pedidos_painel %>%
filter(orgao == "PR – Presidência da República") %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
A presidência da República negou pedidos de acesso a informação somente em 2012 e 2018.
#' paleta de cores
pal <- c(
cores_tb[["azul"]],
cores_aep[["cinza"]],
cores_aep[["laranja"]],
cores_aep[["rosa"]]
)
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
mutate(
assunto_pedido = if_else(
assunto_pedido == "Outros em Segurança e Ordem Pública",
str_glue("{assunto_pedido}\n(negado em {2018})"),
str_glue("{assunto_pedido}\n(negado em {2012})")
)) %>%
ggplot(aes(fill = reorder(especificacao_decisao, n),
y = n,
x = reorder(assunto_pedido, nn))) +
scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
x = "Assunto do pedido",
y = "Quantidade",
fill = "Especificação da decisão"
) +
geom_col() +
coord_flip()
orgaos_count_decisao %>%
filter(str_detect(orgao, "^GSI")) %>%
mutate(
taxa_interna = n_mes_decisao_orgao / n_mes_orgao,
taxa_global = n_mes_decisao_orgao / n_mes_decisao
) %>%
group_by(orgao, decisao) %>%
summarise(
n_ano = sum(n_mes_decisao_orgao),
tx_interna_media = mean(taxa_interna, na.rm = T),
tx_global_media = mean(taxa_global, na.rm = T),
.groups = "drop"
)
#> # A tibble: 7 x 5
#> orgao decisao n_ano tx_interna_media tx_global_media
#> <chr> <chr> <int> <dbl> <dbl>
#> 1 GSI-PR – Gabinete de~ Acesso Concedido 13208 0.548 0.00197
#> 2 GSI-PR – Gabinete de~ Acesso Negado 11978 0.435 0.0189
#> 3 GSI-PR – Gabinete de~ Acesso Parcialme~ 919 0.164 0.0110
#> 4 GSI-PR – Gabinete de~ Informação Inexi~ 832 0.212 0.0206
#> 5 GSI-PR – Gabinete de~ Não se trata de ~ 120 0.123 0.00339
#> 6 GSI-PR – Gabinete de~ Órgão não tem co~ 315 0.168 0.0140
#> 7 GSI-PR – Gabinete de~ Pergunta Duplica~ 438 0.133 0.0196
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^GSI")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
ggplot(aes(fill = reorder(especificacao_decisao, n),
y = n,
x = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
x = "Assunto do pedido",
y = "Quantidade",
fill = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_gsi <- function(df, assunto, campo) {
cor <- if_else(campo == "resposta_clean", cores_aep[2], cores_tb[5])
titulo <- if_else(
campo == "resposta_clean",
"Frequência de palavras na resposta",
"Frequência de palavras no pedido"
)
layout(matrix(c(1, 2), nrow = 2), heights = c(.5, 6))
par(mar = rep(0, 4))
plot.new()
text(x = 0.5, y = 0.5, titulo)
pedidos_clean %>%
filter(id_pedido %in% orgao$id_pedido) %>%
inner_join(orgao) %>%
filter(decisao == "Acesso Negado") %>%
filter(assunto_pedido == assunto) %>%
select(
"id_pedido",
all_of(campo),
"data_registro",
"ano",
"orgao",
"assunto_pedido",
"decisao",
"especificacao_decisao",
"sub_assunto_pedido"
) %>%
unnest_tokens(word, campo) %>%
anti_join(stopwords) %>%
mutate(word = str_extract(word, "[a-z']+"),
word = if_else(word == "urltag", "link-url", word)) %>%
filter(word != "ddmmyyyy",
word != "art",
word != "nup",
word != "www",
word != "quot",
!str_count(word) %in% c(1, 2)) %>%
count(word, sort = T) %>%
with(wordcloud(word, n, max.words = 150, scale = c(3, .5),
random.order = F,
random.color = F,
main = title,
colors = c(cores_tb[["cinza_claro"]],
cores_aep[["laranja"]],
cor)))
}
wordcloud_gsi(pedidos_clean, "Outros em Defesa Nacional", "detalhamento_solicitacao_clean")
wordcloud_gsi(pedidos_clean, "Outros em Defesa Nacional", "resposta_clean")
wordcloud_gsi(pedidos_clean, "Acesso à informação", "detalhamento_solicitacao_clean")
wordcloud_gsi(pedidos_clean, "Acesso à informação", "resposta_clean")
wordcloud_gsi(pedidos_clean, "Direitos Humanos", "detalhamento_solicitacao_clean")
wordcloud_gsi(pedidos_clean, "Direitos Humanos", "resposta_clean")
wordcloud_gsi(pedidos_clean, "Transparência", "detalhamento_solicitacao_clean")
wordcloud_gsi(pedidos_clean, "Transparência", "resposta_clean")
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^VPR ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios <- function(df, campo, select_ano) {
cor <- if_else(campo == "resposta_clean", cores_aep[2], cores_tb[5])
titulo <- if_else(
campo == "resposta_clean",
"Frequência de palavras na resposta",
"Frequência de palavras no pedido"
)
layout(matrix(c(1, 2), nrow = 2), heights = c(.5, 6))
par(mar = rep(0, 4))
plot.new()
text(x = 0.5, y = 0.5, titulo)
pedidos_clean %>%
filter(id_pedido %in% orgao$id_pedido) %>%
inner_join(orgao) %>%
filter(decisao == "Acesso Negado") %>%
filter(ano %in% select_ano) %>%
select(
"id_pedido",
all_of(campo),
"data_registro",
"ano",
"orgao",
"assunto_pedido",
"decisao",
"especificacao_decisao",
"sub_assunto_pedido"
) %>%
unnest_tokens(word, campo) %>%
anti_join(stopwords) %>%
mutate(word = str_extract(word, "[a-z']+"),
word = if_else(word == "urltag", "link-url", word)) %>%
filter(word != "ddmmyyyy",
word != "art",
word != "nup",
word != "www",
word != "requerida",
word != "requerente",
# word != "informacao",
# word != "informacoes",
word != "gov",
word != "ora",
word != "senhoria",
word != "cabe",
word != "faca",
word != "quot",
!str_count(word) %in% c(1, 2)) %>%
count(word, sort = T) %>%
with(wordcloud(word, n, max.words = 150, scale = c(3, .5),
random.order = F,
random.color = F,
main = title,
colors = c(cores_tb[["cinza_claro"]],
cores_aep[["laranja"]],
cor)))
}
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MRE ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^SEGOV")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^AGU ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^CC-PR ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MME ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^SGPR ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MCTI ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^CGU ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^CGU ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MD ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MINFRA ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MMA")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_mma <- function(df, campo) {
cor <- if_else(campo == "resposta_clean", cores_aep[2], cores_tb[5])
titulo <- if_else(
campo == "resposta_clean",
"Frequência de palavras na resposta",
"Frequência de palavras no pedido"
)
layout(matrix(c(1, 2), nrow = 2), heights = c(.5, 6))
par(mar = rep(0, 4))
plot.new()
text(x = 0.5, y = 0.5, titulo)
pedidos_clean %>%
filter(id_pedido %in% orgao$id_pedido) %>%
inner_join(orgao) %>%
filter(decisao == "Acesso Negado") %>%
select(
"id_pedido",
all_of(campo),
"data_registro",
"ano",
"orgao",
"assunto_pedido",
"decisao",
"especificacao_decisao",
"sub_assunto_pedido"
) %>%
unnest_tokens(word, campo) %>%
anti_join(stopwords) %>%
mutate(word = str_extract(word, "[a-z']+"),
word = if_else(word == "urltag", "link-url", word)) %>%
filter(word != "ddmmyyyy",
word != "art",
word != "nup",
word != "www",
word != "requerida",
word != "requerente",
# word != "informacao",
# word != "informacoes",
word != "gov",
word != "ora",
word != "senhoria",
word != "cabe",
word != "faca",
word != "quot",
!str_count(word) %in% c(1, 2)) %>%
count(word, sort = T) %>%
with(wordcloud(word, n, max.words = 150, scale = c(3, .5),
random.order = F,
random.color = F,
main = title,
colors = c(cores_tb[["cinza_claro"]],
cores_aep[["laranja"]],
cor)))
}
wordcloud_mma(pedidos_clean, "detalhamento_solicitacao_clean")
wordcloud_mma(pedidos_clean, "resposta_clean")
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MS ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2020:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2020:2021)
pedidos_painel %>% glimpse()
#> Rows: 1.071.664
#> Columns: 24
#> $ id <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ~
#> $ path <chr> "C:/Users/rauld/Documents/negativas-acesso-infor~
#> $ ano <chr> "2012", "2012", "2012", "2012", "2012", "2012", ~
#> $ id_pedido <chr> "1346790", "1346791", "1346792", "1346793", "134~
#> $ protocolo_pedido <chr> "18600000027201241", "08850000004201231", "08850~
#> $ esfera <chr> "Federal", "Federal", "Federal", "Federal", "Fed~
#> $ uf <chr> "", "", "", "", "", "", "", "", "", "", "", "", ~
#> $ municipio <chr> "", "", "", "", "", "", "", "", "", "", "", "", ~
#> $ orgao <chr> "BACEN – Banco Central do Brasil", "MJSP – Minis~
#> $ situacao <chr> "Concluída", "Concluída", "Concluída", "Concluíd~
#> $ data_registro <date> 2012-05-01, 2012-05-01, 2012-05-01, 2012-05-01,~
#> $ prazo_atendimento <chr> "05/06/2012", "05/06/2012", "05/06/2012", "05/06~
#> $ foi_prorrogado <chr> "Não", "Não", "Não", "Não", "Não", "Não", "Não",~
#> $ foi_reencaminhado <chr> "Não", "Não", "Não", "Não", "Não", "Não", "Não",~
#> $ forma_resposta <chr> "Pelo sistema (com avisos por email)", "Correspo~
#> $ origem_solicitacao <chr> "Internet", "Internet", "Internet", "Internet", ~
#> $ id_solicitante <chr> "2104514", "2104756", "2104759", "2104759", "210~
#> $ assunto_pedido <chr> "Outros em Economia e Finanças", "Abastecimento"~
#> $ data_resposta <date> 2012-05-01, 2012-06-01, 2012-06-01, 2012-06-01,~
#> $ decisao <chr> "Acesso Negado", "Acesso Parcialmente Concedido"~
#> $ especificacao_decisao <chr> "Pedido incompreensível", "Parte da informação i~
#> $ sub_assunto_pedido <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
#> $ ts_registro <chr> "15/05/2012", "15/05/2012", "15/05/2012", "15/05~
#> $ ts_resposta <chr> "16/05/2012", "01/06/2012", "05/06/2012", "05/06~
orgaos_count_decisao %>%
filter(str_detect(orgao, "^MS "),
decisao == "Acesso Negado",
between(data_registro, ymd("2020-01-01"), ymd("2021-12-01"))) %>%
transmute(
data_registro,
decisao,
n_mes_decisao_orgao,
n_mes_decisao,
tx = n_mes_decisao_orgao / n_mes_decisao
) %>%
distinct() %>%
ggplot(aes(x = data_registro, y = tx)) +
geom_col(fill = cores_aep[["rosa"]]) +
geom_point() +
hrbrthemes::scale_y_percent() +
scale_x_date(date_breaks = "4 months",
date_labels = "%b-%Y",) +
labs(
x = NULL,
y = "% de acessos negados",
title = "Ministério da Saúde - pedidos de acesso a informação com acesso negado",
subtitle = "Como % do total de pedidos registrados no FalaBr\nPeríodo: Jan/2020 até "
)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MAPA ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MMFDH ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MJSP ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MTur ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MDR ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MEC ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()
wordcloud_ministerios(pedidos_clean, "detalhamento_solicitacao_clean", 2015:2021)
wordcloud_ministerios(pedidos_clean, "resposta_clean", 2015:2021)
orgao <- pedidos_painel %>%
filter(str_detect(orgao, "^MCOM ")) %>%
select(id_pedido, data_registro, ano, orgao,
assunto_pedido, decisao, especificacao_decisao,
sub_assunto_pedido) %>%
mutate(especificacao_decisao = replace_na(especificacao_decisao, "Não especificada"))
orgao %>%
filter(decisao == "Acesso Negado") %>%
count(ano, assunto_pedido, decisao, especificacao_decisao) %>%
add_count(assunto_pedido, wt = n) %>%
filter(nn > 10) %>%
ggplot(aes(x = reorder(especificacao_decisao, n),
y = n,
fill = reorder(assunto_pedido, nn))) +
#scale_fill_manual(values = pal) +
labs(
title = "Acessos negados por assunto e especificação da decisão",
subtitle = str_glue("{unique(orgao$orgao)}"),
fill = "Assunto do pedido",
y = "Quantidade",
x = "Especificação da decisão"
) +
geom_col() +
coord_flip()